package com.jdz.util;

import com.jdz.dao.AnnouncemenMapper;
import com.jdz.dao.ProjectDetailsMapper;
import com.jdz.dao.RaceTypeMapper;
import com.jdz.dao.RaceTypeSamsaraMapper;
import com.jdz.pojo.Announcemen;
import com.jdz.pojo.RaceType;
import com.jdz.pojo.RaceTypeSamsara;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;

/**
 *
 * 类名称：TimerTask
 * 类描述：定时器任务
 * 创建人：geekfly
 * 创建时间：Aug 29, 2016 10:56:27 AM
 * @version  V1.0
 *
 */
@Component
public class TimerTask {


    @Autowired
    RaceTypeSamsaraMapper raceTypeSamsaraMapper;
    @Autowired
    RaceTypeMapper raceTypeMapper;


    /**
     * 每天00点00启动任务
     */
    @Scheduled(cron = "0 0 0 * * ?")
    public void test1()
    {
        Date newDate = new Date();
        String stringDate = DateTimeUtil.dateToStr(newDate,"yyyy-MM-dd ");

        List<RaceTypeSamsara> raceTypeSamsaraList = raceTypeSamsaraMapper.allRacetypeno();
        List<RaceType>  raceTypeList = raceTypeMapper.selectAll();

        for(RaceType Item : raceTypeList){
            String da = DateTimeUtil.dateToStr(Item.getStarttime(),"yyyy-MM-dd ");
            if(Item.getParentId()==0){
                continue;
            }
            if(da==null){
                continue;
            }
            if(stringDate.equals(da)){
                RaceType raceType = new RaceType();
                raceType.setRacetypeno(Item.getRacetypeno());
                raceType.setStatus(0);
                int r = raceTypeMapper.updateByPrimaryKeySelective(raceType);
                System.out.println(r);
            }
        }


        for(RaceTypeSamsara Item : raceTypeSamsaraList){
            if(Item.getBallotstatus()==null){
                continue;
            }
            String da = DateTimeUtil.dateToStr(Item.getBallotstarttime(),"yyyy-MM-dd ");
            if(da==null){
                continue;
            }
            if(stringDate.equals(da)){
                RaceTypeSamsara raceTypeSamsara = new RaceTypeSamsara();
                raceTypeSamsara.setRacetypesamsarano(Item.getRacetypesamsarano());
                raceTypeSamsara.setBallotstatus(0);
                int r = raceTypeSamsaraMapper.updateByPrimaryKeySelective(raceTypeSamsara);
                System.out.println(r);
            }
        }
    }
    @Scheduled(cron = "0 55 23 * * ?")
    public void test2()
    {
        Date newDate = new Date();
        String stringDate = DateTimeUtil.dateToStr(newDate,"yyyy-MM-dd ");

        List<RaceTypeSamsara> raceTypeSamsaraList = raceTypeSamsaraMapper.allRacetypeno();

        List<RaceType>  raceTypeList = raceTypeMapper.selectAll();

        for(RaceType Item : raceTypeList){
            if(Item.getStoptime()==null){
                continue;
            }
            String da = DateTimeUtil.dateToStr(Item.getStoptime(),"yyyy-MM-dd ");
            if(Item.getParentId()==0){
                continue;
            }
            if(da==null){
                continue;
            }
            if(stringDate.equals(da)){
                RaceType raceType = new RaceType();
                raceType.setRacetypeno(Item.getRacetypeno());
                raceType.setStatus(1);
                int r = raceTypeMapper.updateByPrimaryKeySelective(raceType);
                System.out.println(r);
            }
        }



        for(RaceTypeSamsara Item : raceTypeSamsaraList){
            if(Item.getBallotstoptime()==null){
                continue;
            }
            String da = DateTimeUtil.dateToStr(Item.getBallotstoptime(),"yyyy-MM-dd ");
            if(da==null){
                continue;
            }
            if(stringDate.equals(da)){
                RaceTypeSamsara raceTypeSamsara = new RaceTypeSamsara();
                raceTypeSamsara.setRacetypesamsarano(Item.getRacetypesamsarano());
                raceTypeSamsara.setBallotstatus(1);
                int r = raceTypeSamsaraMapper.updateByPrimaryKeySelective(raceTypeSamsara);
                System.out.println(r);
            }
        }
    }



}

//    CRON表达式    含义
//  “0 0 12 * * ?”    每天中午十二点触发
//          “0 15 10 ? * *”    每天早上10：15触发
//          “0 15 10 * * ?”    每天早上10：15触发
//          “0 15 10 * * ? *”    每天早上10：15触发
//          “0 15 10 * * ? 2005”    2005年的每天早上10：15触发
//          “0 * 14 * * ?”    每天从下午2点开始到2点59分每分钟一次触发
//          “0 0/5 14 * * ?”    每天从下午2点开始到2：55分结束每5分钟一次触发
//          “0 0/5 14,18 * * ?”    每天的下午2点至2：55和6点至6点55分两个时间段内每5分钟一次触发
//          “0 0-5 14 * * ?”    每天14:00至14:05每分钟一次触发
//          “0 10,44 14 ? 3 WED”    三月的每周三的14：10和14：44触发
//          “0 15 10 ? * MON-FRI”    每个周一、周二、周三、周四、周五的10：15触发
//
//
//          ———————————–注意—————————————
//          添加好之后，启动服务器不要默默的等着它自动执行，因为它并不会执行！需要手动访问该项目的一个连接才能真正启动服务器。
//
//
//          因为web项目默认并不是随Tomcat启动的！！！
//          而且TimerTask类必须在配置的包扫描下！！！